package Day_0213.Tomcat;

/**
 * @author zxc
 * @date 2023/02/13 23:18
 **/
public class Tomcat_Connect {
    public static void main(String[] args) {
        /**
         * Tomcat Connect的运行模式（优化）
         * ===》
         *
         *1.Tomcat Connect概念以及定义
         * （1）在Tomcat架构中，Connector主要负责处理与客户端的通信。
         * （2）Connector实例用于监听端口，接受来自客户端的请求，并将请求转交给Engine处理。
         * （3）同时，将来自Engine的答复返回给客户端。
         *
         *2.
         *1）bio：传统的 Java I/O 操作，同步且阻塞 IO。
         * （1）maxThreads=”150”
         *  //Tomcat 使用线程来处理接收的每个请求。这个值表示Tomcat 可创建的最大的线程数。默认值 200。
         *  可以根据机器的时期性能和内存大小调整，一般可以在 400-500。最大可以在 800 左右。
         * （2）minSpareThreads=”25”—Tomcat
         *  初始化时创建的线程数。默认值 4。
         *  如果当前没有空闲线程，且没有超过 maxThreads，一次性创建的空闲线程数量。
         *  Tomcat初始化时，创建的线程数量也由此值设置。
         *
         * （3）maxSpareThreads=”75”–
         *  一旦创建的线程超过这个值，Tomcat 就会关闭不再需要的 socket 线程。默认值 50。
         *  一旦创建的线程超过此数值，Tomcat 会关闭不再需要的线程。
         *  线程数可以大致上用 “同时在线人数每秒用户操作次数系统平均操作时间” 来计算。
         *
         * （4）acceptCount=”100”—-
         *  指定当所有可以使用的处理请求的线程数都被使用时，可以放到处理队列中的请求数，超过这个数的请求将不予处理。默认值 10。
         *  如果当前可用线程数为 0，则将请求放入处理队列中。这个值限定了请求队列的大小，超过这个数值的请求将不予处理。
         *
         * （5）connectionTimeout=”20000” –
         *  网络连接超时，默认值 20000，单位：毫秒。
         *  设置为 0 表示永不超时，这样设置有隐患的。通常可设置为 30000 毫秒。
         *
         *2）nio：同步非阻塞IO；
         *  JDK1.4 开始支持，同步阻塞（bio）或同步非阻塞IO（nio）。
         * （1）指定使用 NIO 模型来接受 HTTP 请求
         *  protocol=”org.apache.coyote.http11.Http11NioProtocol”
         *  默认是 BlockingIO，配置为 protocol=”HTTP/1.1”
         *
         * （2）acceptorThreadCount=”2”
         *  使用 NIO 模型时，接收线程的数目
         *
         *3）aio(nio.2)：
         *   JDK7 开始支持，异步非阻塞 IO。
         *
         *4）apr：
         *  Tomcat 将以 JNI 的形式，调用 Apache HTTP 服务器的核心动态链接库来处理文件读取或网络传输操作，
         *  从而大大地 提高Tomcat对静态文件的处理性能。
         *  ===》 即，从操作系统层面，解决IO阻塞问题;
         *
         * （1）maxHttpHeaderSize="8192"
         *  http 请求头信息的最大程度，超过此长度的部分不予处理。一般 8K。
         *
         * （2）URIEncoding="UTF-8"
         *  指定 Tomcat 容器的 URL 编码格式。
         *
         * （3）disableUploadTimeout="true"
         *  上传时是否使用超时机制
         *
         * （4）enableLookups="false"--
         *  是否反查域名，默认值为 true。为了提高处理能力，应设置为 false
         *
         * （5）compression="on"
         *  打开压缩功能
         *
         * （6）compressionMinSize="10240"
         *  启用压缩的输出内容大小，默认为 2KB
         *
         * （7）noCompressionUserAgents="gozilla, traviata"
         *  对于以下的浏览器，不启用压缩
         *
         * （8）compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
         *  哪些资源类型需要压缩
         *
         */
    }
}
